package com.kh.pajx.sop.service;

import java.util.List;
import java.util.Map;

import com.kh.pajx.sop.base.IBaseService;
import com.kh.pajx.sop.domain.BossEcinfo;
import com.kh.pajx.sop.domain.HsSchoolInfo;
import com.kh.pajx.sop.domain.HsSchoolRelation;
import com.kh.pajx.sop.domain.PageBean;
import com.kh.pajx.sop.domain.SysArea;
import com.kh.pajx.sop.domain.SysInsideUser;
import com.kh.pajx.sop.util.page.QueryHelperForManyTable;

/**
 * 学校信息业务接口
 * 
 * @author:	徐江涛
 * 2014年6月23
 */
public interface ISchoolService extends IBaseService<HsSchoolInfo>{
    List<HsSchoolInfo> findAllSchool(); //查询所有学校
    HsSchoolInfo getSchoolById(String sclid);//根据Id查询学校信息
    
    /**
     *根据学校编号查询与之关联的学校关系 
     *@param sclid 学校编号
     *@author xujiangtao
     */
    HsSchoolRelation getSchoolRelationBySclId(String sclid);
    
    /**
     *根据学校关系中销售和客服人员id查询与之关联的销售人员，客服人员等
     *@param uuid 学校关系中的对应人员id
     *@author xujiangtao
     */
    SysInsideUser getUserBySclId(String uuid);
    
    /* azzcsimp 2014-07-22废弃该方法 *//**
     *根据学校关系中学校管理员id，移动客户经理id查询与之关联的，客服人员等
     *@param uuid 学校关系中的对应人员id
     *@author xujiangtao
     *//*
    OutsideUser getOutUserById(String uuid);*/
    
    /**
     *根据学校的地区id查询地区
     *@param areaCode 区域id
     *@author xujiangtao
     */
    SysArea getAreaByCode(String areaCode);
    /**
     *查询所有地区
     *@author xujiangtao
     */
	List findAllArea() ;

	/**
     *修改学校信息
     *@author xujiangtao
     */
	boolean updateSchoolInfo(HsSchoolInfo school,HsSchoolRelation schoolRelation);

	
	/**
	 * 添加学校信息.关系信息
	 * 
	 * @param hsSchoolInfo
	 * @param hsSchoolRelation
	 * @return
	 * @throws Exception
	 * @author lipengfei 2014/6/25
	 */
	public boolean addSchool(HsSchoolInfo hsSchoolInfo,
			HsSchoolRelation hsSchoolRelation) throws Exception;

	/**
     *根据条件分页查询（多表内连接）
     *@author xujiangtao
     */
	public PageBean getPageBean(int pageNum, int pageSize,
			QueryHelperForManyTable queryHelperFromMany);
	/**
	 *执行HQL语句返回结果，测试使用
	 *@author xujiangtao
	 */
	public List findByHql(String hql);
	
	/**
	 *根据ecid查询集团客户
	 */
	public BossEcinfo getEcByEcId(String ecid);
	/**
	 *查询所有集团客户
	 */
	public List<BossEcinfo> findAllBossEcinfo();
	/**
	 *更新学校扩展表
	 */
	public boolean updateSchoolRelation(HsSchoolRelation schoolRelation);
	/**
	 *查询方法
	 *@author taller 2014/7/9
	 */
	public List<HsSchoolInfo> searchSchool(Map<String, String> params);
	/**
	 *添加人修改学校，领导审核
	 *@author xujiangtao
	 */
	boolean updateSchool(HsSchoolInfo school,HsSchoolRelation schoolRelation);
	
	// 根据地区编码获取学校代号
		public String getSclNumber(String area);
		List<HsSchoolInfo> getSclBySclIds(List<String> list);
		/**查询各地区开通学校数量*/
		public List getSclCountByArea();
		/**查询市场各部门开通学校数量*/
		public List getSclCountByDept();
		/**按类型查询设备数量*/
		public int getEquCount(String type);
		/**统计在校生、毕业生开通人数*/
		public List getstuInOutOpenNum();
		/**--统计在校生各套餐分布情况*/
		public List gettaocanNum();
		/**在校生人数、在校生开通人数、毕业生人数、毕业生开通人数 */
		public List getstuAllNum();
		/**各部门截止当前开通人数*/
		public List getdeptOpenNum();
		
		
	//根据学校名称查询学校
		public HsSchoolInfo findByName(String sclName);
}
